home *** CD-ROM | disk | FTP | other *** search
/ The Complete Utilities To…ka 501 Killer Utilities! / 501 Killer Utilities! (Macworld July 1995).cdr / Programming / OutOfPhase1.1 Source / OutOfPhase Folder / EffectSpecList.h < prev    next >
Encoding:
C/C++ Source or Header  |  1995-01-04  |  2.4 KB  |  82 lines  |  [TEXT/KAHL]

  1. /* EffectSpecList.h */
  2.  
  3. #ifndef Included_EffectSpecList_h
  4. #define Included_EffectSpecList_h
  5.  
  6. /* EffectSpecList module depends on */
  7. /* MiscInfo.h */
  8. /* Audit */
  9. /* Debug */
  10. /* Definitions */
  11. /* Memory */
  12. /* Array */
  13. /* DelayEffectSpec */
  14. /* NonlinearProcSpec */
  15. /* FilterSpec */
  16. /* AnalyzerSpec */
  17.  
  18. struct EffectSpecListRec;
  19. typedef struct EffectSpecListRec EffectSpecListRec;
  20.  
  21. /* forwards */
  22. struct DelayEffectRec;
  23. struct NonlinProcSpecRec;
  24. struct FilterSpecRec;
  25. struct AnalyzerSpecRec;
  26.  
  27. /* effect types */
  28. typedef enum
  29.     {
  30.         eDelayEffect EXECUTE(= 12431),
  31.         eNLProcEffect,
  32.         eFilterEffect,
  33.         eAnalyzerEffect
  34.     } EffectTypes;
  35.  
  36. /* create a new effect list */
  37. EffectSpecListRec*    NewEffectSpecList(void);
  38.  
  39. /* dispose of an effect list */
  40. void                                DisposeEffectSpecList(EffectSpecListRec* EffectSpecList);
  41.  
  42. /* add a delay effect to the spec list */
  43. MyBoolean                        AddDelayToEffectSpecList(EffectSpecListRec* EffectSpecList,
  44.                                             struct DelayEffectRec* DelaySpec);
  45.  
  46. /* add a nonlinear processor to the spec list */
  47. MyBoolean                        AddNLProcToEffectSpecList(EffectSpecListRec* EffectSpecList,
  48.                                             struct NonlinProcSpecRec* NLProcSpec);
  49.  
  50. /* add a parallel filter array to the spec list */
  51. MyBoolean                        AddFilterToEffectSpecList(EffectSpecListRec* EffectSpecList,
  52.                                             struct FilterSpecRec* FilterSpec);
  53.  
  54. /* add an analyzer to the spec list */
  55. MyBoolean                        AddAnalyzerToEffectSpecList(EffectSpecListRec* EffectSpecList,
  56.                                             struct AnalyzerSpecRec* AnalyzerSpec);
  57.  
  58. /* find out how many effects are in the list */
  59. long                                GetEffectSpecListLength(EffectSpecListRec* EffectSpecList);
  60.  
  61. /* get the type of the specified effect */
  62. EffectTypes                    GetEffectSpecListElementType(EffectSpecListRec* EffectSpecList,
  63.                                             long Index);
  64.  
  65. /* get the delay effect at the specified index */
  66. struct DelayEffectRec*    GetDelayEffectFromEffectSpecList(
  67.                                             EffectSpecListRec* EffectSpecList, long Index);
  68.  
  69. /* get the nonlinear processor from the specified index */
  70. struct NonlinProcSpecRec*    GetNLProcEffectFromEffectSpecList(
  71.                                             EffectSpecListRec* EffectSpecList, long Index);
  72.  
  73. /* get the filter from the specified index */
  74. struct FilterSpecRec*    GetFilterEffectFromEffectSpecList(
  75.                                             EffectSpecListRec* EffectSpecList, long Index);
  76.  
  77. /* get the analyzer from the specified index */
  78. struct AnalyzerSpecRec*    GetAnalyzerEffectFromEffectSpecList(
  79.                                             EffectSpecListRec* EffectSpecList, long Index);
  80.  
  81. #endif
  82.